As electronic computing units proliferate, the demand for applications to facilitate communications between such devices will also increase. These devices can be personal digital assistants (PDAs) as an example, or personal computers or laptop computers or any other devices capable of storing, processing and communicating information. With the use of these devices, one person may want to share stored data items with one or more other persons. These stored data items may be of any size, from a single bit to the entire stored contents of the PDA.
If the data transfer is conducted over unsecured network connections, the transferred data items need to be verified for accuracy and completeness. One reason for such verification is that the data items may have been accidentally corrupted or maliciously tampered with during transmission. This verification is especially important if the datum has security value.
Currently, after one participant (sender) provides data to another participant (recipient), the participants typically must trust that the transfer was correct, because methods of verification are difficult to obtain and execute. In some cases, a cryptographic hash application is available on all computing devices engaged in this data verification, and the participants may compute the cryptographic hash over the shared data and then read the alphanumeric value of the hash to one another.
For example, an application program referred to as “Pretty Good Privacy” (PGP) exemplifies a data verification technique for cryptographic keys. The idea of PGP is to bind a public key of an owner to his or her global name, such as an e-mail address, for example, without the cost of a central trusted source. PGP allows every user to generate his or her own keys. For key verification purposes, PGP computes a fingerprint of the key to be verified, in the form of a cryptographic hash result of that key. This hash result is computed independently by the sender's (keyholder's) copy of PGP and the recipient's copy of PGP. These cryptographic hash results, displayed either in the form of a long hexadecimal number or a sequence of English words, are then compared by having one party read the value to the other. If the values match, then the key in question is verified.
The PGP verification technique has a number of disadvantages. For instance, PGP is exclusively used for key verification and not for verification of data items as a whole. Another disadvantage associated with PGP verification requires many hexadecimal numbers or a string of meaningless words to be compared, which is a time consuming and unpleasant method for those who want to achieve a high reliability of verification. As a result, some users skip the verification process entirely. Also, PGP verification is unable to verify multiple persons contemporaneously and fails to provide a rendition of images or audible sounds for verification of data items. This method of verification is also available by computer applications that verify arbitrary files, one at a time, by computing their cryptographic hash values, rendering those hash values as alphanumeric strings and allowing one user to read out the string while another user or set of users compare what is read to what their own machines have computed.